package main

import "fmt"

func getAverage(arr []int, size int) float32 {
	var i int
	var avg, sum float32
	for i = 0; i < size; i++ {
		sum += float32(arr[i])
	}
	avg = sum / float32(size)
	return avg
}

func main() {
	/*var n [10]int //是一个长度为10的数组
	var i int

	// 为数组n初始化元素
	for i = 0; i < 10; i++ {
		n[i] = i + 100 // 设置元素为i + 100
	}
	// 输出每个数组元素的值
	for i = 0; i < 10; i++ {
		fmt.Printf("Element[%d] = %d\n", i, n[i])
	}*/

	/*var i int
	//声明数组的同时快速初始化数组
	balance := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
	// 输出数组元素
	for i = 0; i < 5; i++ {
		fmt.Printf("balance[%d] = %f\n", i, balance[i])
	}
	balance2 := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
	// 输出每个数组元素的值
	for i = 0; i < 5; i++ {
		fmt.Printf("balance2[%d] = %f\n", i, balance2[i])
	}
	// 将下标为1和3的元素初始化，其余未初始化的都是0
	balance3 := [5]float32{1:2.0, 3:7.0}
	for i = 0; i < 5; i++ {
		fmt.Printf("balance3[%d] = %f\n", i, balance3[i])
	}*/

	/*// 创建数组
	values := [][]int{}
	// 使用append()函数向空的二维数组添加两行一维数组
	row1 := []int{1, 2, 3}
	row2 := []int{4, 5, 6}
	values = append(values, row1)
	values = append(values, row2)
	// 显示两行数据
	fmt.Println("Row 1")
	fmt.Println(values[0])
	fmt.Println("Row 2")
	fmt.Println(values[1])
	// 访问第一个元素
	fmt.Println("第一个元素为：")
	fmt.Println(values[0][0])*/

	/*// 创建二维数组
	sites := [2][2]string{}
	// 向二维数组添加元素
	sites[0][0] = "Google"
	sites[0][1] = "Runoob"
	sites[1][0] = "Taobao"
	sites[1][1] = "Weibo"
	// 显示结果
	fmt.Println(sites)*/

	/*// 数组 5行2列
	var a = [5][2]int{
		{0, 0},
		{1, 2},
		{2, 4},
		{3, 6},
		{4, 8},
	}
	// 输出数组元素
	var i, j int
	for i = 0; i < 5; i++ {
		for j = 0; j < 2; j++ {
			fmt.Printf("a[%d][%d] = %d\n", i, j, a[i][j])
		}
	}*/

	/*// 创建空的二维数组
	animals := [][]string{}
	// 创建3个一维数组，各数组长度不同
	row1 := []string{"fish", "shark", "eel"}
	row2 := []string{"bird"}
	row3 := []string{"lizard", "salamander"}
	// 使用append()函数将一维数组添加到二维数组中
	animals = append(animals, row1)
	animals = append(animals, row2)
	animals = append(animals, row3)
	// 循环输出
	for i:= range animals {
		fmt.Printf("Row:%v\n", i)
		fmt.Println(animals[i])
	}*/

	/*// 注意：Go不支持++i！！！
	// 数组长度为5
	var balance = []int{1000, 2, 3, 17, 50}
	var avg float32
	// 数组作为参数传递给函数
	avg = getAverage(balance, 5)// 传递数组给函数的时候，形参和实参的数组大小必须一致！！！
	// 输出返回的平均值
	fmt.Printf("平均值为%f\n", avg)*/

	// 浮点数计算输出有一定的偏差
	a := 1.69
	b := 1.7
	c := a * b// 结果应该是2.873
	fmt.Println(c)// 输出的是2.8729999999999998

	/*a := 1690// 表示1.69
	b := 1700// 表示1.70
	c := a * b// 结果应该是2873000表示2.873
	fmt.Println(c)// 内部编码
	fmt.Println(float64((c)) / 1000000)// 显示*/
}